home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 2 / Atari Mega Archive CD - Volume 2.iso / 8bit / cislib_a / fwa.bas < prev    next >
BASIC Source File  |  1995-04-22  |  2KB  |  63 lines

  1. 10 REM INITIALIZE 
  2. 20 GOSUB 29000 
  3. 30 REM GET PIC NAME 
  4. 40 ? "ENTER FILESPEC";:INPUT PIC$ 
  5. 50 REM LOAD PICTURE 
  6. 60 GOSUB 29200 
  7. 70 GOTO 70 
  8. 29000 REM --Init for Fun with Art-- 
  9. 29010 REM Call only once 
  10. 29020 MX=7:DIM CIO$(MX) 
  11. 29030 FOR I=1 TO MX:READ J:CIO$(I)=CHR$(J):NEXT I 
  12. 29040 DATA 104,104,104,170,76,86,228 
  13. 29050 MX=15:DIM PIC$(MX):REM Use PIC$ to hold the filename 
  14. 29060 DIM DLION$(MX) 
  15. 29070 FOR I=1 TO MX:READ J:DLION$(I)=CHR$(J):NEXT I 
  16. 29080 DATA 104,169,192,141,232,6,162,6,160,221 
  17. 29090 DATA 169,6,76,92,228 
  18. 29092 MX=18:DIM DLIOFF$(MX) 
  19. 29094 FOR I=1 TO MX:READ J:DLIOFF$(I)=CHR$(J):NEXT I 
  20. 29096 DATA 104,169,64,141,232,6,141,14,212,162 
  21. 29098 DATA 228,160,95,169,6,76,92,228 
  22. 29100 REM  
  23. 29110 REM Init variables and steal some memory from BASIC 
  24. 29120 REM  
  25. 29130 IOCB=848:OLDSCL=PEEK(560):OLDSCH=PEEK(561) 
  26. 29140 PICBAS=(INT(PEEK(742)/16)-2)*16 
  27. 29150 DLIBAS=PICBAS-9:POKE 741,0:POKE 742,DLIBAS 
  28. 29160 RETURN  
  29. 29200 REM --Load & Show FWA Picture-- 
  30. 29210 REM NOTE:This routine returns A=-1 if it does not identify the picture as a FWA file 
  31. 29220 GOSUB 29600:TRAP 29500:REM Make sure the DLI's are off 
  32. 29230 OPEN #1,4,0,PIC$:GET #1,A:GET #1,B:REM I.D. BYTES 
  33. 29240 IF A<>B THEN CLOSE #1:A=-1:RETURN :REM NOT A FWA PIC 
  34. 29250 IF A<>254 THEN CLOSE #1:A=-1:RETURN :REM NOT A FWA PIC 
  35. 29260 REM Get playfield colors 
  36. 29270 GET #1,A:POKE 712,A:REM COLBK 
  37. 29280 FOR I=0 TO 2:GET #1,A:POKE 708+I,A:NEXT I 
  38. 29290 REM -Read Display List into Page 6 
  39. 29300 POKE IOCB+4,0:POKE IOCB+5,6 
  40. 29310 POKE IOCB+8,0:POKE IOCB+9,1 
  41. 29320 A=USR(ADR(CIO$),16) 
  42. 29330 REM --Read Screen Data-- 
  43. 29340 POKE IOCB+4,0:POKE IOCB+5,PICBAS 
  44. 29350 POKE IOCB+8,16:POKE IOCB+9,30 
  45. 29360 A=USR(ADR(CIO$),16) 
  46. 29370 REM --Read DLI Routines-- 
  47. 29380 POKE IOCB+4,0:POKE IOCB+5,DLIBAS 
  48. 29390 POKE IOCB+8,0:POKE IOCB+9,9 
  49. 29400 A=USR(ADR(CIO$),16) 
  50. 29410 CLOSE #1:OLDSCL=PEEK(560):OLDSCH=PEEK(561) 
  51. 29420 REM --Show Picture on Screen-- 
  52. 29430 POKE 1541,PICBAS:POKE 1645,PICBAS+16 
  53. 29440 POKE 1758,2:POKE 1763,DLIBAS 
  54. 29450 POKE 560,0:POKE 561,6 
  55. 29460 A=USR(ADR(DLION$)) 
  56. 29470 A=0:RETURN  
  57. 29500 REM --ERROR TRAP HANDLER-- 
  58. 29510 CLOSE #1:A=-1:RETURN  
  59. 29600 REM --Restore the Basic Text Screen-- 
  60. 29610 A=USR(ADR(DLIOFF$)) 
  61. 29620 POKE 560,OLDSCL:POKE 561,OLDSCH 
  62. 29630 RETURN  
  63.